'use strict';

const db = uniCloud.database()
const userInfoDb = db.collection('UserInfo')

exports.main = async (event, context) => {
    // event为客户端上传的参数
    console.log('---addUser----event:', event)
    
    // 参数验证
    if (!event.username || !event.password || !event.mobile) {
        return {
            code: 400,
            message: '用户名、密码和手机号为必填项'
        }
    }
    
    // 检查用户名是否已存在
    const usernameCheck = await userInfoDb.where({
        username: event.username
    }).get()
    
    if (usernameCheck.data.length > 0) {
        return {
            code: 400,
            message: '用户名已存在'
        }
    }
    
    // 检查手机号是否已存在
    const mobileCheck = await userInfoDb.where({
        mobile: event.mobile
    }).get()
    
    if (mobileCheck.data.length > 0) {
        return {
            code: 400,
            message: '手机号已存在'
        }
    }
    
    try {
        // 添加创建时间
        const userData = {
            username: event.username,
            password: event.password, // 实际项目中应该加密
            mobile: event.mobile,
            email: event.email || '',
            nickname: event.nickname || event.username,
            createTime: Date.now(),
            updateTime: Date.now()
        }
        
        // 添加数据到数据库
        let addUserRes = await userInfoDb.add(userData)
        
        // 返回成功结果（不返回密码）
        return {
            code: 200,
            message: '用户添加成功',
            data: {
                id: addUserRes.id,
                username: userData.username,
                mobile: userData.mobile,
                email: userData.email,
                nickname: userData.nickname,
                createTime: userData.createTime
            }
        }
        
    } catch (error) {
        console.error('添加用户失败:', error)
        return {
            code: 500,
            message: '服务器内部错误'
        }
    }
};